import Vue from 'vue'
import VueRouter from 'vue-router'

// cms  pms ems vms

Vue.use(VueRouter)
// 放置按钮重复点击跳转页面
const routerPush = VueRouter.prototype.push
VueRouter.prototype.push = function push(location) {
  return routerPush.call(this, location).catch(error => error)
}
/**
 *  权限管理 RBAC(角色分配)
 *
 * 0: 超级管理员：可以访问所有的页面
 * 1: 普通管理员：可以访问部分页面
 * 2: ...:      部分页面
 *
 * 1. 在导航元信息中定义权限字段
 * 2. 后台返回当前的用户信息（0，1，2） 调用了一个用户信息接口
 * 3. 封装过滤函数，将后台返回的身份信息，（0，1，2），传入封装好的函数中，过滤出你需要的路由信息数组
 * 4. 利用vue路由的addRoutes将当前的路由信息 添加到路由表
 */

const constantRouter = [
  {
    path: '*',
    redirect: '/404'
  },
  {
    path: '/',
    redirect: '/login'
  },
  {
    path: '/login',
    component: () => import('@/pages/login')
  },
  {
    path: '/404',
    component: () => import('@/pages/404')
  },
  {
    path: '/about',
    component: () => import('@/views/About')
  }
]

// RBAC 角色分配
// 变量路由，随后做路由权限判断使用
// const asyncRouter = []

const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes: constantRouter
})

export default router
